เผยแพร่: 11 พฤศจิกายน 2024 อัปเดตล่าสุด: 20 พฤษภาคม 2025
วิดีโออธิบาย | เว็บ | ส่วนขยาย | สถานะ Chrome | ความตั้งใจ |
---|---|---|---|---|
MDN | ดู | Intent to Ship |
คุณสามารถช่วยให้ผู้ใช้สามารถสรุปบทความที่ยาว เอกสารที่ซับซ้อน หรือแม้แต่การสนทนาในแชทที่มีชีวิตชีวาให้เป็นสรุปที่กระชับและมีข้อมูลเชิงลึก
Summarizer API สามารถใช้สร้างสรุปประเภทต่างๆ ในความยาวและรูปแบบที่หลากหลาย เช่น ประโยค ย่อหน้า รายการหัวข้อย่อย และอื่นๆ เราเชื่อว่า API นี้จะมีประโยชน์ในสถานการณ์ต่อไปนี้
- สรุปประเด็นสำคัญของบทความหรือการสนทนาทางแชท
- แนะนำชื่อและหัวข้อสำหรับบทความ
- การสร้างข้อมูลสรุปที่กระชับและให้ข้อมูลของข้อความที่มีความยาว
- การสร้างตัวอย่างหนังสือโดยอิงจากรีวิวหนังสือ
เริ่มต้นใช้งาน
Summarizer API พร้อมใช้งานใน Chrome 138 เวอร์ชันเสถียร
เรียกใช้การตรวจหาฟีเจอร์เพื่อดูว่าเบราว์เซอร์รองรับ Summarizer API หรือไม่
if ('Summarizer' in self) {
// The Summarizer API is supported.
}
ตรวจสอบข้อกำหนดด้านฮาร์ดแวร์
เครื่องมือตรวจหาภาษาและ Translator API ใช้งานได้ในเดสก์ท็อปใน Chrome เท่านั้น
Prompt API, Summarizer API, Writer API และ Rewriter API จะทำงานใน Chrome ได้เมื่อมีคุณสมบัติตรงตามเงื่อนไขต่อไปนี้
- ระบบปฏิบัติการ: Windows 10 หรือ 11, macOS 13 ขึ้นไป (Ventura ขึ้นไป) หรือ Linux API ที่ Gemini Nano รองรับยังไม่รองรับ Chrome สำหรับ Android, iOS และ ChromeOS
- พื้นที่เก็บข้อมูล: อย่างน้อย 22 GB ในวอลุ่มที่มีโปรไฟล์ Chrome
- GPU: VRAM มากกว่า 4 GB เท่านั้น
- เครือข่าย: อินเทอร์เน็ตแบบไม่จำกัดหรือการเชื่อมต่อแบบไม่จำกัดปริมาณ
ข้อกำหนดเหล่านี้มีไว้สำหรับคุณในกระบวนการพัฒนาและผู้ใช้ที่ทำงานกับฟีเจอร์ที่คุณสร้างขึ้น
การดาวน์โหลดโมเดล
Summarizer API ใช้โมเดลที่ผ่านการฝึกเพื่อสร้างสรุปที่มีคุณภาพสูง API นี้สร้างขึ้นใน Chrome และ Gemini Nano คือโมเดลที่ดาวน์โหลดเมื่อเว็บไซต์ใช้ API นี้เป็นครั้งแรก
หากต้องการตรวจสอบว่าโมเดลพร้อมใช้งานหรือไม่ ให้เรียกใช้ฟังก์ชันแบบแอซิงโครนัส Summarizer.availability()
โดยจะแสดงผลพรอมต์ที่มีค่าต่อไปนี้
"unavailable"
หมายความว่าการติดตั้งใช้งานไม่รองรับตัวเลือกที่ขอ"downloadable"
หมายความว่าการใช้งานรองรับตัวเลือกที่ขอ แต่ก่อนอื่นเบราว์เซอร์ต้องดาวน์โหลดบางอย่าง เช่น โมเดล (ในกรณีของ Chrome คือ Gemini Nano) หรือการปรับแต่งโมเดล"downloading"
หมายความว่าการติดตั้งใช้งานรองรับตัวเลือกที่ขอ แต่ต้องดาวน์โหลดที่อยู่ระหว่างดำเนินการให้เสร็จสิ้นก่อนจึงจะดำเนินการต่อได้"available"
หมายความว่าการติดตั้งใช้งานรองรับตัวเลือกที่ขอและเครื่องมือสรุปสามารถดําเนินการต่อได้
หากต้องการเรียกให้ดาวน์โหลดโมเดลและสร้างเครื่องมือสรุป ให้เรียกใช้ฟังก์ชันแบบอะซิงโครนัส Summarizer.create()
หากการตอบกลับ availability()
คือ downloadable
หรือ downloading
แนวทางปฏิบัติแนะนำคือให้ฟังการดาวน์โหลดเพื่อดูความคืบหน้า วิธีนี้จะช่วยให้คุณแจ้งให้ผู้ใช้ทราบและระบุว่าการดาวน์โหลดอาจใช้เวลาสักครู่จึงจะสรุปได้
const summarizer = await Summarizer.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
});
ฟังก์ชัน API
ฟังก์ชัน create()
ช่วยให้คุณกําหนดค่าออบเจ็กต์สรุปใหม่ได้ตามต้องการ โดยจะใช้ออบเจ็กต์ options
(ไม่บังคับ) ที่มีพารามิเตอร์ต่อไปนี้
sharedContext
: บริบทเพิ่มเติมที่แชร์ซึ่งช่วยสรุปได้type
: ประเภทของข้อมูลสรุปซึ่งมีค่าที่อนุญาต ได้แก่key-points
(ค่าเริ่มต้น),tldr
,teaser
และheadline
ดูรายละเอียดในตารางต่อไปนี้format
: รูปแบบของข้อมูลสรุปซึ่งมีค่าที่อนุญาตคือmarkdown
(ค่าเริ่มต้น) และplain-text
length
: ความยาวของการสรุป โดยมีค่าที่อนุญาตคือshort
,medium
(ค่าเริ่มต้น) และlong
ความหมายของความยาวเหล่านี้จะแตกต่างกันไปโดยขึ้นอยู่กับtype
ที่ขอ ตัวอย่างเช่น ในการใช้งานของ Chrome สรุปสั้นๆ ของประเด็นสำคัญประกอบด้วยหัวข้อย่อย 3 หัวข้อ และสรุปสั้นๆ คือประโยคเดียว
เมื่อตั้งค่าแล้ว คุณจะเปลี่ยนพารามิเตอร์ไม่ได้ สร้างออบเจ็กต์สรุปใหม่หากต้องการแก้ไขพารามิเตอร์
ตารางต่อไปนี้แสดงข้อมูลสรุปประเภทต่างๆ และความยาวที่สอดคล้องกัน ความยาวแสดงถึงค่าสูงสุดที่เป็นไปได้ เนื่องจากบางครั้งผลลัพธ์อาจสั้นกว่า
ประเภท | ความหมาย | ความยาว | ||||||
---|---|---|---|---|---|---|---|---|
"tldr" |
สรุปควรสั้นกระชับและตรงประเด็น โดยให้ภาพรวมคร่าวๆ ของอินพุต ซึ่งเหมาะสำหรับผู้อ่านที่มีเวลาไม่มาก |
|
||||||
"teaser" |
ข้อมูลสรุปควรเน้นที่ส่วนที่น่าสนใจหรือน่าดึงดูดใจที่สุดของข้อมูล โดยออกแบบมาเพื่อดึงดูดให้ผู้อ่านอ่านต่อ |
|
||||||
"key-points" |
สรุปควรดึงประเด็นที่สําคัญที่สุดจากอินพุตมาแสดงเป็นรายการหัวข้อ |
|
||||||
"headline" |
ข้อมูลสรุปควรระบุประเด็นหลักของอินพุตอย่างมีประสิทธิภาพในประโยคเดียวในรูปแบบของบรรทัดแรกของบทความ |
|
ตัวอย่างต่อไปนี้แสดงวิธีเริ่มต้นใช้งานเครื่องมือสรุป
const options = {
sharedContext: 'This is a scientific article',
type: 'key-points',
format: 'markdown',
length: 'medium',
};
const availability = await Summarizer.availability();
let summarizer;
if (availability === 'unavailable') {
// The Summarizer API isn't usable.
return;
}
if (availability === 'available') {
// The Summarizer API can be used immediately .
summarizer = await Summarizer.create(options);
} else {
// The Summarizer API can be used after the model is downloaded.
summarizer = await Summarizer.create(options);
summarizer.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
await summarizer.ready;
}
เรียกใช้เครื่องมือสรุป
เรียกใช้เครื่องมือสรุปได้ 2 วิธี ได้แก่ สตรีมมิงและกลุ่ม (ไม่ใช่สตรีมมิง)
การสรุปแบบเป็นกลุ่ม
เมื่อใช้การสรุปแบบเป็นกลุ่ม โมเดลจะประมวลผลอินพุตทั้งหมดแล้วสร้างเอาต์พุต
หากต้องการดูข้อมูลสรุปของกลุ่ม ให้เรียกใช้ฟังก์ชัน summarize()
โดยอาร์กิวเมนต์แรกคือข้อความที่คุณต้องการสรุป อาร์กิวเมนต์ที่ 2 (ไม่บังคับ) เป็นออบเจ็กต์ที่มีฟิลด์ context
ช่องนี้ช่วยให้คุณเพิ่มรายละเอียดเบื้องหลังที่อาจช่วยปรับปรุงการสรุปได้
const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
context: 'This article is intended for a tech-savvy audience.',
});
การสรุปข้อมูลสตรีมมิง
สรุปแบบสตรีมมิงจะแสดงผลลัพธ์แบบเรียลไทม์
เอาต์พุตจะอัปเดตอย่างต่อเนื่องเมื่อมีการเพิ่มและปรับอินพุต หากต้องการดูสรุปสตรีมมิง ให้โทร summarizeStreaming()
แทน summarize()
const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarizeStreaming(longText, {
context: 'This article is intended for junior developers.',
});
สาธิต
คุณสามารถลองใช้ Summarizer API ใน Summarizer API Playground
ความพยายามในการทำให้มาตรฐาน
เรากําลังพยายามทำให้ Summarizer API เป็นมาตรฐานเดียวกัน เพื่อให้ใช้งานร่วมกันได้กับเบราว์เซอร์ต่างๆ
ข้อเสนอ API ของเราได้รับการสนับสนุนจากชุมชนและได้ย้ายไปยังกลุ่มชุมชน Web Incubator ของ W3C เพื่อพูดคุยกันต่อ ทีม Chrome ได้ขอความคิดเห็นจากกลุ่มสถาปัตยกรรมทางเทคนิคของ W3C และสอบถามMozilla และ WebKit เกี่ยวกับจุดยืนด้านมาตรฐาน
มีส่วนร่วมในมาตรฐานโดยเข้าร่วมกลุ่มชุมชน Web Incubator
แชร์ความคิดเห็น
เราอยากเห็นสิ่งที่คุณสร้างด้วย Summarizer API แชร์เว็บไซต์และเว็บแอปพลิเคชันกับเราใน X, YouTube และ LinkedIn
หากต้องการแสดงความคิดเห็นเกี่ยวกับการใช้งาน Chrome ให้ส่งรายงานข้อบกพร่องหรือคำขอฟีเจอร์